package top.littlejiang.onlinexam.service;

import top.littlejiang.onlinexam.common.base.BaseService;
import top.littlejiang.onlinexam.entity.OlexamExam;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 考试表 服务类
 * </p>
 *
 * @author chen
 * @since 2021-03-11
 */
public interface OlexamExamService extends BaseService<OlexamExam> {

    /**
     * 列表查询
     * @param query
     * @return
     */
    List<OlexamExam> getListForTeacher(OlexamExam query);

    /**
     * 列表查询
     * @param query
     * @return
     */
    List<OlexamExam> getListForStu(OlexamExam query);

    /**
     * 获取所有不重复考试名
     * @return
     */
    List<String> getNames();

    /**
     * 根据考试名获取考试uuid
     * @param examName
     * @return
     */
    String getUuidByNames(String examName);

    /**
     * 检查是否已存在考试名
     * @param examName
     * @return
     */
    boolean checkName(String examName);

    /**
     * 根据uuid 逻辑删除
     * @param uuids
     */
    void deleteByUuid(List<String> uuids);

    /**
     * 根据uuid 更新考试状态
     * @param examUuid
     * @param status
     */
    void updateStatus(String examUuid, Integer status);

    /**
     * 根据uuid 查询单个
     * @param query
     * @return
     */
    OlexamExam checkOne(OlexamExam query);

    /**
     * 查询考试统计结果
     * @param examUuid
     * @return
     */
    Map<String, Object> getExamRst(String examUuid);
}
